Determination of unique items based on generating descriptive vectors of users

ABSTRACT

Product recommendations are provided to a target user that take into account the style, interests, and hobbies of the target user and a desire by the target user to be unique from the target user&#39;s social group. In some aspects, a list of recommended products may be generated for the target user based on data about the target user&#39;s purchasing habits, social media interactions, or any other data. A list of products associated with users in the target user&#39;s social group may also be generated, for example, based on products purchased, currently worn by, or previously worn by the users in the target user&#39;s social group. A uniqueness-aware list of recommended products may then be generated from the list of recommended products by removing any products found in both the list of recommended products and the list of products associated with users in the target user&#39;s social group.

BACKGROUND

The present disclosure relates to improvements in the systems andmethods used to recommend products to users.

Product recommendation systems may determine which products to suggestto a target user in a variety of different ways. In some aspects, forexample, product suggestions may be based on the target user's priorpurchasing activity on-line, in store, and in any other manner. Productsuggestions may also be based on a target user's searching activity, forexample, the target user's use of a search engine, mobile application,or other similar tools.

BRIEF SUMMARY

In an aspect of the present disclosure, a method for productrecommendation emphasizing uniqueness is disclosed including receivingdata associated with a target user, generating a descriptive vector forthe target user based on the received data, executing a machine learnedrecommendation function with the descriptive vector to generate a scorefor each of a plurality of pre-defined fashion attributes, comparing thedescriptive vector of the target user to a descriptive vector of atleast one other user determining, based on the comparison, that asimilarity between the descriptive vector of the target user and thedescriptive vector of the at least one other user is above apre-determined threshold, in response to determining that the similarityis above the pre-determined threshold, generating a list of productsthat are associated with the at least one other user, determining foreach product in the list of products, at least one of the pre-definedfashion attributes as a fashion attribute of the product, generating alist of recommended products for the target user from the list ofproducts based on the generated score of each of the pre-defined fashionattributes that are determined to be fashion attributes of the productsin the list of products, determining, based on the data associated withthe target user, users that are in the target user's social group,determining a list of products that are associated with the users in thetarget user's social group, comparing the list of recommended productsfor the target user to the list of products that are associated with theusers in the target user's social group, determining, based on thecomparison, that at least one product is included in both the list ofrecommended products for the target user and the list of products thatare associated with the users in the target user's social group,removing the at least one product from the list of recommended productsbased on the determination that the at least one product is included inboth the list of recommended products for the target user and the listof products that are associated with the users in the target user'ssocial group to form a uniqueness-aware list of recommended products,and presenting the uniqueness-aware list of recommended products to thetarget user via a graphical user interface on a display of a computingdevice associated with the target user.

In aspects of the present disclosure, apparatus, systems, and computerprogram products in accordance with the above aspect may also beprovided. Any of the above aspects may be combined without departingfrom the scope of the present disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The details of the present disclosure, both as to its structure andoperation, can best be understood by referring to the accompanyingdrawings, in which like reference numbers and designations refer to likeelements.

FIG. 1 is a system diagram in accordance with an aspect of the presentdisclosure.

FIG. 2 is a flow chart of a method implemented by the system of FIG. 1in accordance with an aspect of the present disclosure.

FIGS. 3-6 are illustrations of example graphical user interfacesimplemented by the system of FIG. 1 in accordance with an aspect of thepresent disclosure.

FIG. 7 is an exemplary block diagram of a computer system in whichprocesses involved in the system, method, and computer program productdescribed herein may be implemented.

DETAILED DESCRIPTION

The goal of a product recommendation system is to present products to atarget user that appeal to the target user. For example, productrecommendation systems may attempt to recommend a product base onstyles, brands, or other features of products that the productrecommendation system determines will appeal to the target user's senseof style. For example, the product recommendation system may make adetermination of whether a product will appeal to a target user based ondata about the target user. In some aspects, for example, the targetuser's sense of style may be determined based on the target user'spurchasing habits, images posted to social media, the target user's webbrowsing habits (e.g., which products the target user looks at on theweb and how long the target user looks at each product), or any otherdata that may be used to determine a target user's preferences, styles,or other information that may be used to select products forrecommendation to the target user.

In some aspects, recommending products to a target user based on style,brands, or other similar information may not be enough to capture thetarget user's purchases. For example, while the target user may have acertain style, the target user may also wish to be unique. Uniquenessmay be determined, for example, by comparing the available products ofthe target user's style to products owned or in use by users in thetarget user's social group. For example, the target user may wish topurchase products, e.g., clothing, bags, or other accessories, that areunique within the target user's social group. The social group mayinclude, for example, friends on social media, neighbors, co-workers,family, or any other social group. In some aspects, for example, thesocial group may be a group of friends on social media that are directlyor actively involved with the target user, e.g., those friends that areoften tagged in images that also tag the target user, friends whomessage the target user, friends who post on the target user's wall, orother similar activities.

With reference now to FIG. 1, a system 100 for recommending products toa target user based on the target user's style and on uniqueness fromthe target user's social group is illustrated. In some aspects, system100 includes a computing device 110, a server 150, and data sources 170.

Computing device 110 includes at least one processor 112, memory 114, atleast one network interface 116, a display 118, an input device 120, andmay include any other features commonly found in a computing device. Insome aspects, computing device 110 may, for example, be a computingdevice associated with a target user that is configured to present thetarget user with a list of recommended products for purchasing by thetarget user. In some aspects, computing device 110 may include, forexample, a personal computer, laptop, tablet, smart device, smart phone,smart watch, or any other similar computing device that may be used by atarget user.

Processor 112 may include, for example, a microcontroller, FieldProgrammable Gate Array (FPGAs), or any other processor that isconfigured to perform various operations. Processor 112 may beconfigured to execute instructions as described below. Theseinstructions may be stored, for example, in memory 114.

Memory 114 may include, for example, non-transitory computer readablemedia in the form of volatile memory, such as random access memory (RAM)and/or cache memory or others. Memory 114 may include, for example,other removable/non-removable, volatile/non-volatile storage media. Byway of non-limiting examples only, memory 114 may include a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a portable compact disc read-only memory (CD-ROM), anoptical storage device, a magnetic storage device, or any suitablecombination of the foregoing.

Network interface 116 is configured to transmit and receive data orinformation to and from server 150, data sources 170, or any othercomputing device via wired or wireless connections. For example, networkinterface 116 may utilize wireless technologies and communicationprotocols such as Bluetooth®, WWI (e.g., 802.11a/b/g/n), cellularnetworks (e.g., CDMA, GSM, M2M, and 3G/4G/4G LTE), near-fieldcommunications systems, satellite communications, via a local areanetwork (LAN), via a wide area network (WAN), or any other form ofcommunication that allows computing device 110 to transmit or receiveinformation to or from server 150 or data sources 170.

Display 118 may include any display device that is configured to displayinformation to a target user using computing device 110. For example, insome aspects, display 118 may include a computer monitor, television,smart television, or other similar displays. In some aspects, display118 may be integrated into or associated with computing device 110, forexample, as a display of a laptop, smart phone, smart watch, or othersmart wearable devices, as a virtual reality headset associated withcomputing device 110, or any other mechanism for displaying informationto a target user. In some aspects, display 118 may include, for example,a liquid crystal display (LCD), an e-paper/e-ink display, an organic LED(OLED) display, or other similar display technologies. In some aspects,display 118 may be touch-sensitive and may also function as an inputdevice 120.

Input device 120 may include, for example, a keyboard, a mouse, atouch-sensitive display 118, a keypad, a microphone, or other similarinput devices or any other input devices that may be used alone ortogether to provide a target user with the capability to interact withcomputing device 110.

Server 150 includes a processor 152, memory 154, and a network interface156 that may include similar functionality as processor 112, memory 114,and network interface 116. In some aspects, server 150 may, for example,be any computing device, server, or similar system that is configured tointeract with or provide data to computing device 110. For example,server 150 may be configured to gather and analyze data associated witha target user, e.g., from data sources 170 or computing device 110, andto generate a list of recommended products for purchase by the targetuser.

In some aspects, each data source 170 may include at least one processor172, memory 174, and a network interface 176 that may include similarfunctionality as processor 112, memory 114, and network interface 116.Data sources 170 may store or contain user data 178 that may be analyzedand used to present the target user with recommended products forpurchase by the target user.

Data sources 170 may, for example, include any database, web site,social media site, social media application, or any other source ofinformation or data about the target user using computing device 110such as, for example, the target user's spending habits, the targetuser's purchases, the target user's hobbies, the target user'sinterests, the target user's browsing history, or any other informationor data about the target user that may be analyzed and used to identifyproducts for recommendation to the target user.

In some aspects, data sources 170 may also or alternatively include anysources of information or data about other users that may be compared tothe target user using computing device 110 or server 150. For example,data about other users purchasing patterns, hobbies, interests, or othersimilar features may be compared to the data about the target user todetermine similarities and generate product recommendations based on thesimilarities. For example, where the target user and another user orgroup of users have similar purchasing habits, products purchased bythat group of users that have not yet been purchased by the target usermay be recommended for purchasing by the target user.

In some aspects, data sources 170 may also or alternatively be anysources of information or data about any users that may be part of thetarget user's social group, e.g., friends, frequent contacts, or othersimilar users. In some aspects, for example, data sources 170 mayinclude social media sites, retailer web sites, databases or other datasources containing the purchasing history of users including, forexample, on-line and in-store purchases. In some aspects, data sources170 may include databases or data sources containing information aboutthe target user's interests or hobbies (for example, based on webbrowser usage, web sites visited, purchases, interactions between theuser and the web sites, etc.). In some aspects, data sources 170 mayinclude databases or data sources containing target user'scommunications such as e-mail, social media messaging, blogging, orother similar communications. Data sources 170 may also or alternativelyinclude any other data sources that may provide information about thetarget user that may be used to recommend products for purchase by thetarget user.

In some aspects, with reference now to FIG. 2, a method 200 forrecommending products to a target user that match the target user'sstyle and are unique is illustrated.

At 202, server 150 may access data sources 170 to gather data about thetarget user. For example, a message may be transmitted to data sources170 via network interfaces 156 and 176 requesting data about the targetuser. In some aspects, server 150 may visit a web page, social mediasite, or other similar data source 170 associated with the target userto gather data about the target user. In some aspects, an applicationresiding on computing device 110 that contains data about the targetuser may be accessed by server 150. In some aspects, server 150 mayaccess a database or other data repository associated with anapplication residing on computing device 110 that contains data aboutthe target user. For example, an application for a retailer or adatabase associated with such an application may be accessed to gatherpurchasing data, profile data, web surfing data, browsing data, or anyother data about the target user that may be used to recommend productsto the target user.

In some aspects, data sources 170 may be accessed to gather data aboutthe target user including, for example, preferred styles, favoritebrands, social media texts, social media photos, social media “likes”,attributes of the user, geographical location of the user, local weatherconditions, hobbies, interests, or any other data about the target userthat may be used to recommend products to the target user.

In some aspects, questions may be presented by computing device 110 tothe target user, for example, regarding the target user's interests,hobbies, or any other information about the target user that may be usedto make a recommendation. Any responses by the target user may be addedto the data gathered about the target user from data sources 170. Thequestions may be presented and responses may be received, for example,via an application running on computing device 110, on web page accessedby the user, or other similar methods of presentation and reception.

In some aspects, computing device 110 may present the target user withimages including products having different styles. The target user mayindicate whether each image includes a product that matches the targetuser's style. This information may be added to the data gathered aboutthe target user from data sources 170.

In some aspects, for example, any other user input may be received bycomputing device 110 from the target user regarding the target user'spreferences and may be added to the data gathered about the target userfrom data sources 170.

In some aspects, the accessed data about the target user may be receivedby server 150 or computing device 110 from data sources 170, forexample, via network interfaces 116, 156, and 176. In some aspects,server 150 may store the received data in memory 154 as target user data158. Although described with reference to server 150, it is contemplatedthat computing device 110 may also or alternatively access data sources170 directly to gather data about the target user. In some aspects, forexample, computing device 110 receives the data from data sources 170and may store the received data in memory 114 as target user data 122.In some aspects, for example, server 150 may parse through the users'social media likes, photos, or other information received from datasources 170 to infer the user's fashion preference. In some aspects,server 150 may determine the user's location, e.g., using a globalpositioning system (GPS) on computing device 110 or geolocation tags onthe user's social media content.

At 204, a descriptive vector is generated by computing device 110 orserver 150 based on the target user data 122 or 158. For example, thedescriptive vector may be a vector of data that records some or all ofthe information needed to make a decision on the target user's fashionpreferences. In some aspects, for example, the descriptive vector may begenerated at least in part by processing the target user's interactionson social media including, for example, texting, photos, “likes” or anyother interaction. In some aspects, the descriptive vector may also begenerated based at least in part on non-fashion information including,for example, geographical location, local weather conditions, or othersimilar information. In some aspects, the descriptive vector may begenerated based at least in part on, for example, fashion styles orproducts previously purchased by the target user. In some aspects, thedescriptive vector may be generated based at least in part on, forexample, an analysis of the target user's social media content includingimage processing of images posted by the target user that may includeproducts that the target user is currently wearing or has historicallyworn.

In some aspects, for example, the descriptive vector may include one ormore numbers indicating physical attributes of the target user. In someaspects, for example, the descriptive vector may include a number orvalue corresponding to one or more of preferred styles of the targetuser, favorite brands of the target user, social media text associatedwith the target user, social media photos associated with the targetuser, social media ‘likes’ associated with the target user, anoccupation of the target user, a geographical location of the targetuser, local weather condition where the target consumer is located,socioeconomic status, or other similar measures that may be used todetermine what products to recommend to the target user.

In some aspects, for example, each different type of information mayrequire a different process of generating the descriptive vector values.For example, some information may be represented in the descriptivevector by just a single value. For example, gender may be represented asa binary number, e.g., 1 for woman, 0 for man, age may be represented asan integer, etc. Some information may be represented in the descriptivevector by multiple values. For example, weather may include separatevalues for temperature, wind speed, humidity, etc. In some aspects, someinformation may require hundreds or thousands of values. For example, abrand preference may be represented by a list or array of 1s and 0s torepresent the like/dislike of each brand, visual features of socialmedia photos may be represented by a number of values indicating thepresence of common visual features such as SIFT features, or DeepFeatures, or other similar information.

In some aspects, for example, the descriptive vector may include datapoints in a high-dimensional space. For example, if a descriptive vectorincludes 4000 numbers, each referring to an aspect of the targetconsumer, the target user's descriptive vector may be considered to bethe equivalent to a single point in a 4000 dimensional space. To compareone user's vector to other user's vectors, distances in the featurespace may be measured (e.g., simple distances like Euclidean distance orcomplicated distances that requires Distance Metric Learning). Forexample, the smaller the distance in the 4000 dimensional space betweentwo users descriptive vectors, the more similar the descriptive vectorsof those users are.

In some aspects, for example, the descriptive vector values may benormalized across datasets, for example using sigmoid normalization. Forexample, groups of descriptive vector values may be weighted accordingto the number of elements in their group. For example, if the brandpreference values of the descriptive vectors require 1000 dimensionalelements, the brand preference may be weighted by 1/1000 so that theycarry a similar “importance” as elements that have a larger or smallernumber of dimensional elements.

At 206, the descriptive vector of the target user may be compared todescriptive vectors of other users or groups of users by computingdevice 110 or server 150 to determine a similarity between thedescriptive vectors. For example, in some aspects, rules may be manuallydefined that measure the similarity between two vectors. In someaspects, for example, a machine learning model may be trained todetermine the similarity using a set of training data including aplurality of vectors and an identification of the similarity betweeneach pair of vectors in the set of training data. For example, themachine learning module may be trained to output a similarity score,e.g., a value between 0% and 100%, which identifies the similaritybetween two descriptive vectors. In some aspects, a hybrid approach maybe used to determine similarity including manually defined rules thatmay be utilized by the machine learning model to determine a similarity.

In some aspects, for example, the similarity determination may be basedon a Euclidean distance between the two descriptive vectors.

In some aspects, the output of the similarity determination may becompared to a predetermined threshold similarity value to determinewhether the descriptive vector for the target user and the descriptivevector of another user are similar enough. For example, if thepredetermined threshold similarity value is 75% and the determinedsimilarity is 65%, the computing device 110 or server 150 may determinethat the descriptive vectors are not similar enough to warrant thegeneration of a list of products based on the descriptive vectors of theother user for the target user. In some aspects, the predeterminedthreshold similarity value may be pre-determined for each version of theapplication. In some aspects, the pre-determined threshold may bedetermined based on user input, user feedback, a user study, or in anyother manner. For example, users may be asked to provide feedback on theprovided product recommendations and that feedback may be utilized togenerate or tune the pre-determined similarity threshold.

If the determined similarity is above the predetermined thresholdsimilarity value, e.g., 80%, a list of recommended products is generatedby computing device 110 or server 150 based on the comparison. In someaspects, for example, descriptive vectors with a high similarity to thedescriptive vector of the target user may be used as a basis forgenerating a list of recommending products for the target user.

In some aspects, for example, a recommendation function may be trainedto map descriptive vectors to distributions of desired fashionattributes. In some aspects, for example, the recommendation functionmay be trained based on input feature vectors such as the descriptivevector or data used to generate the descriptive vector and expectedoutputs such as probability scores for a list of pre-defined fashionattributes, e.g., category (dress, shoes, gloves, etc.), color, cut,size, patterns (solid, stripes, graphics, etc.), fabric (denim, silk,velvet, cotton, polyester, etc.) or other similar fashion attributes.

In some aspects, for example, a training set of data may be collectedincluding a large number of users and their corresponding descriptivevectors and purchase history data. Fashion attributes may be extractedfrom each product in the purchase histories and the recommendationfunction may be trained based on the descriptive vectors and thecorresponding output fashion attributes. For example, in some aspects, amachine learning model such as a neural network may be trained using thedescriptive vectors as inputs and the fashion attributes as expectedoutputs. In some aspects, deep learning machine learning models may beused.

In some aspects, a portion of the training set of data may be used totrain the machine learning model while a second portion of the trainingset of data may be set apart for use in testing the model. In someaspects, the model may be tested using descriptive vectors and otherdata from real users, e.g., by performing a study and requestingfeedback on the product recommendation results from the users.

In some aspects, for example, the descriptive vector for the target usermay be input into the trained recommendation function and therecommendation function may output probability scores for eachpre-defined fashion attribute that may be used to generate the list ofrecommended products. For example, products may be selected forinclusion in the list of recommended products by determining one or morecorresponding fashion attributes from the list of pre-defined fashionattributes for each product. The probability scores output by therecommendation function for the corresponding list of pre-determinedfashion attributes may then be utilized to determine whether theproducts should be included in the list of recommended products.

In some aspects, products purchased or worn by the users other than thetarget user, e.g., users determined to have similar descriptive vectorsto the target user, may be analyzed to determine whether they should beincluded in the list of recommended products. For example, correspondingpre-determined fashion attributes for each product may be determined,and the product may be added to the list of recommended products basedon the probability scores for the corresponding pre-determined fashionattributes generated by the recommendation function for the target user.

In some aspects, for example, only products having correspondingpre-determined fashion attributes with probability scores that arehigher than a pre-determined threshold score may be included in the listof recommended products. For example, if a particular hat has a redcolor and striped pattern, the system may determine which pre-determinedfashion attributes correspond to the hat, e.g., type: hat, color: red,pattern: striped. The corresponding pre-determined fashion attributesmay then be used to determine the probability scores for each fashionattribute of the hat and the probability scores may be used to determinewhether to include the hat in the list of recommended products. Forexample, the recommendation function may determine based on the targetuser's descriptive vector that hats have a probability score of 60%, thecolor red has a probability score of 75%, and the striped pattern has aprobability score of 30%. If the predetermined threshold for includingan item in the list of recommended items is 70%, the particular hat maybe included by virtue of the color red scoring 75% for the target user.In some aspects, for example, more than one fashion attribute may berequired to be above the pre-determined threshold. For example, if thecolor red is above the threshold of 70% but no other fashion attributeis above the threshold, the particular hat may not be included in thelist of recommended products for the target user.

In some aspects, for example, the fashion attributes of each product maybe pre-computed, e.g., each product may have its fashion attributescomputed once at the time that it is added to the inventory. In someaspects, for example, the fashion attributes may be identified based onweb page data for sale of the product. For example, a product may have aset of fashion attributes on the web page, e.g., product type, color,brand, price, size, collection, etc. In some aspects, for example, apre-trained classifier may be used that applies computer visiontechnology to assess the fashion attributes of a product. For example,an image of the product may be analyzed to determine the fashionattributes of a product using computer vision technology.

In some aspects, for example, the descriptive vector of the target usermay be mapped to a list of product attributes with scores using therecommendation function as described above and then the scores may becompared to the fashion attributes of the products to determine productshaving similar fashion attributes, e.g., by determining a Euclideandistance between two attributes.

At 208, the data sources 170 may be accessed and analyzed, for example,by computing device 110 or server 150, to determine the target user'scontacts, friends, associates, social circle, colleagues, or othersimilar users that may be part of the target user's social group. Forexample, computing device 110 or server 150 may access and analyze thetarget user's social media, communications, business directories, or anyother data source 170 to determine the target user's social group. Forexample, the target user's social media profile may be accessed andanalyzed to determine who the user is friends with, who the usercommunicates with, whose posts the user “likes”, who “likes” the user'sposts, or other similar connections that may be used to determine a listof users who are in the target user's social group. The computing device110 or server 150 may also access and analyze data sources 170associated with the target user's social group list to determinepurchasing history, social media usage, photos, or other similar dataabout the users in the target user's social group list.

At 210, group fashion information may be extracted from the dataassociated with the target user's social group list. For example,computing device 110 or server 150 may determine based on data receivedfrom data sources 170 a list of products that users in the target user'ssocial group list have purchased. In some aspects, for example,computing device 110 or server 150 may perform image processing onphotos or images posted to social media by the users in the targetuser's social group list to determine a list of products or fashionsthat the users in the target user's social group list are wearing. Insome aspects, computing device 110 or server 150 may also analyze anyother data received from data sources 170 about the users in the targetuser's social group list to determine a list of products that the usersin the target user's social group list own, have worn, or are currentlywearing. In some aspects, these lists may be combined into a list ofproducts associated with the users in the target user's social grouplist.

At 212, the list of recommended products for the target user generatedat 206 is compared to the combined list of products associated with theusers in the target user's social group list. In some aspects, anyproducts found in both the combined list of products associated with theusers in the target user's social group list and list of recommendedproducts for the target user may be removed from the list of recommendedproducts to generate a uniqueness-aware list of recommended products forthe target user.

At 214, the uniqueness-aware list of recommended products is presentedto the target user, for example, via display 118 (FIG. 1).

With reference now to FIG. 3, an example computing device 110 presentinga graphical user interface (GUI) 300 on an example display 118 isillustrated. Interface 300 may be used to present the uniqueness-awarelist of recommended products to the user.

In some aspects, interface 300 may include elements 302 that may beactivated by the target user to select a category of products, forexample, dresses, pants, tops, skirts, shorts, etc. For example, thetarget user may use input device 120 (FIG. 1) of computing device 110 toactivate any of elements 302.

In some aspects, interface 300 may include an element 304 activatable bythe target user to set a price range for products to be presented to thetarget user via interface 300. For example, in some aspects, element 304may include one or more slidable tabs 306, 308 that may be used by thetarget user to set a price range. For example, tab 306 may beactivatable and slidable to set a minimum price while tab 308 may beactivatable and slidable to set a maximum price. For example, the targetuser may use input device 120 (FIG. 1) of computing device 110 toactivate any of elements 304, 306, and 308.

In some aspects, interface 300 may include an element 310 that isactivatable by the target user to exclude the display of similar itemsfrom the target user's social group. For example, the target user mayuse input device 120 (FIG. 1) of computing device 110 to activateelement 310. In FIG. 3, element 310 is illustrated as not activated, forexample, as shown by an empty box.

In some aspects, interface 300 may include an element 312 that isactivatable by the target user to apply the selections activated inelements 302, 304, 306, 308, 310. For example, the target user may useinput device 120 (FIG. 1) of computing device 110 to activate element312. Activation of element 312 with element 310 not activated may causecomputing device 110 to present a list of products to the target user,for example, as illustrated in FIG. 4.

With reference now to FIG. 4, for example, when element 310 is notactivated, e.g., similar items are not excluded, a graphical userinterface 400 may be presented to the target user on display 118 ofcomputing device 110 in response to the activation of element 312including a list of products 402. List of products 402 includes, forexample, products 404, 406, 408, 410, 412, and 414. In some aspects, thepresented list of products 402 may include additional products (notshown). For example, the user may use input device 120 to activate,drag, or otherwise manipulate interface 400 to scroll through the listof recommended products. The products presented in the list of products402 may, for example, correspond to list of recommended productsgenerated at 206 (FIG. 2) as described above.

With reference now to FIG. 5, for example, interface 300 is illustratedwith element 310 activated, for example, showing a check mark in thebox. Activation of element 312 with element 310 activated may causecomputing device 110 to present a list of products to the target user,for example, as illustrated in FIG. 6.

With reference now to FIG. 6, for example, when element 310 isactivated, e.g., similar items are excluded, a graphical user interface600 may be presented to the target user on display 118 of computingdevice 110 in response to the activation of element 312 including a listof products 602. List of products 602 includes, for example, products604, 606, 608, 610, 612, and 614. In some aspects, the presented list ofproducts 602 may include additional products (not shown). For example,the user may use input device 120 to activate, drag, or otherwisemanipulate interface 600 to scroll through the list of products 602. Theproducts presented in the list of products 602 may, for example,correspond to uniqueness-aware list of recommended products generated at212 (FIG. 2) as described above.

As shown in FIGS. 4 and 6, for example, the list of products presentedto the target user differ based on whether element 310 (FIG. 3) of userinterface 300 (FIG. 3) is activated. For example, while products 404,408, 412, and 414 are the same as products 604, 608, 612, and 616,products 406 and 410 differ from products 606 and 610. This is becauseproducts 406 and 410 are products associated with the users in thetarget user's social group list. When element 310 is activated, products406 and 410 are removed from the list of recommended products, asdescribed above at 212 (FIG. 2) and 214 (FIG. 2), to generate theuniqueness-aware list of recommended products for presentation as listof products 602. As illustrated in FIG. 6, list of products 602 presentsproducts 606 and 610 that are different than products 406 and 410. Inthis manner, the target user may be presented with products that bothmeet their sense of style, e.g., by generating a list of products basedon the descriptive vector of the target user, while maintaining auniqueness for the target user by remove those products associated withthe target user's social group.

FIG. 7 illustrates a schematic of an example computer or processingsystem that may implement any portion of system 100, computing device110, server 150, data sources 170, systems, methods, and computerprogram products described herein in one embodiment of the presentdisclosure. The computer system is only one example of a suitableprocessing system and is not intended to suggest any limitation as tothe scope of use or functionality of embodiments of the methodologydescribed herein. The processing system shown may be operational withnumerous other general purpose or special purpose computing systemenvironments or configurations. Examples of well-known computingsystems, environments, and/or configurations that may be suitable foruse with the processing system may include, but are not limited to,personal computer systems, server computer systems, thin clients, thickclients, handheld or laptop devices, multiprocessor systems,microprocessor-based systems, set top boxes, programmable consumerelectronics, network PCs, minicomputer systems, mainframe computersystems, and distributed cloud computing environments that include anyof the above systems or devices, and the like.

The computer system may be described in the general context of computersystem executable instructions, such as program modules, being executedby a computer system. Generally, program modules may include routines,programs, objects, components, logic, data structures, and so on thatperform particular tasks or implement particular abstract data types.The computer system may be practiced in distributed cloud computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed cloudcomputing environment, program modules may be located in both local andremote computer system storage media including memory storage devices.

The components of computer system may include, but are not limited to,one or more processors or processing units 12, a system memory 16, and abus 14 that couples various system components including system memory 16to processor 12. The processor 12 may include a software module 10 thatperforms the methods described herein. The module 10 may be programmedinto the integrated circuits of the processor 12, or loaded from memory16, storage device 18, or network 24 or combinations thereof.

Bus 14 may represent one or more of any of several types of busstructures, including a memory bus or memory controller, a peripheralbus, an accelerated graphics port, and a processor or local bus usingany of a variety of bus architectures. By way of example, and notlimitation, such architectures include Industry Standard Architecture(ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA)bus, Video Electronics Standards Association (VESA) local bus, andPeripheral Component Interconnects (PCI) bus.

Computer system may include a variety of computer system readable media.Such media may be any available media that is accessible by computersystem, and it may include both volatile and non-volatile media,removable and non-removable media.

System memory 16 can include computer system readable media in the formof volatile memory, such as random access memory (RAM) and/or cachememory or others. Computer system may further include otherremovable/non-removable, volatile/non-volatile computer system storagemedia. By way of example only, storage system 18 can be provided forreading from and writing to a non-removable, non-volatile magnetic media(e.g., a “hard drive”). Although not shown, a magnetic disk drive forreading from and writing to a removable, non-volatile magnetic disk(e.g., a “floppy disk”), and an optical disk drive for reading from orwriting to a removable, non-volatile optical disk such as a CD-ROM,DVD-ROM or other optical media can be provided. In such instances, eachcan be connected to bus 14 by one or more data media interfaces.

Computer system may also communicate with one or more external devices26 such as a keyboard, a pointing device, a display 28, etc.; one ormore devices that enable a user to interact with computer system; and/orany devices (e.g., network card, modem, etc.) that enable computersystem to communicate with one or more other computing devices. Suchcommunication can occur via Input/Output (I/O) interfaces 20.

Still yet, computer system can communicate with one or more networks 24such as a local area network (LAN), a general wide area network (WAN),and/or a public network (e.g., the Internet) via network adapter 22. Asdepicted, network adapter 22 communicates with the other components ofcomputer system via bus 14. It should be understood that although notshown, other hardware and/or software components could be used inconjunction with computer system. Examples include, but are not limitedto: microcode, device drivers, redundant processing units, external diskdrive arrays, RAID systems, tape drives, and data archival storagesystems, etc.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

Although specific embodiments of the present invention have beendescribed, it will be understood by those of skill in the art that thereare other embodiments that are equivalent to the described embodiments.Accordingly, it is to be understood that the invention is not to belimited by the specific illustrated embodiments, but only by the scopeof the appended claims.

What is claimed is:
 1. A method implemented by at least one hardwareprocessor comprising: receiving data associated with a target user;generating a descriptive vector for the target user based on thereceived data; executing a machine learned recommendation function withthe descriptive vector to generate a score for each of a plurality ofpre-defined fashion attributes; comparing the descriptive vector of thetarget user to a descriptive vector of at least one other user;determining, based on the comparison, that a similarity between thedescriptive vector of the target user and the descriptive vector of theat least one other user is above a pre-determined threshold; in responseto determining that the similarity is above the pre-determinedthreshold, generating a list of products that are associated with the atleast one other user; determining for each product in the list ofproducts, at least one of the pre-defined fashion attributes as afashion attribute of the product; generating a list of recommendedproducts for the target user from the list of products based on thegenerated score of each of the pre-defined fashion attributes that aredetermined to be fashion attributes of the products in the list ofproducts; determining, based on the data associated with the targetuser, users that are in the target user's social group; determining alist of products that are associated with the users in the target user'ssocial group; comparing the list of recommended products for the targetuser to the list of products that are associated with the users in thetarget user's social group; determining, based on the comparison, thatat least one product is included in both the list of recommendedproducts for the target user and the list of products that areassociated with the users in the target user's social group; removingthe at least one product from the list of recommended products based onthe determination that the at least one product is included in both thelist of recommended products for the target user and the list ofproducts that are associated with the users in the target user's socialgroup to form a uniqueness-aware list of recommended products; andpresenting the uniqueness-aware list of recommended products to thetarget user via a graphical user interface on a display of a computingdevice associated with the target user.
 2. The method of claim 1,wherein the data associated with the target user comprises at least oneof preferred styles of the target user, favorite brands of the targetuser, social media texts of the target user, social media photos of thetarget user, social media “likes” of the target user, a demographic ofthe target user, a physical attribute of the target user, a geographicallocation of the target user, and a local weather condition.
 3. Themethod of claim 1, further comprising: presenting at least one questionto the target user via the graphic user interface; and receiving fromthe target user at least one answer in response to the at least onequestion, wherein the descriptive vector is generated based at least inpart on the received answer.
 4. The method of claim 1, furthercomprising: presenting at least one image including at least one productto the target user; and receiving from the target user a score for theat least one product in the at least one image, wherein the descriptivevector is generated based at least in part on the received score for theat least one product in the at least one image.
 5. The method of claim1, further comprising: presenting a uniqueness element to the targetuser via the graphical user interface, the uniqueness elementselectively activatable by the target user between at least a firststate and a second state, wherein: when the uniqueness element is in thefirst state, the at least one processor presents the uniqueness-awarelist of recommended products to the target user via the graphical userinterface; and when the uniqueness element is in the second state, theat least one processor presents the list of recommended products to thetarget user via the graphical user interface instead of theuniqueness-aware list of recommended products.
 6. The method of claim 1,wherein generating the list of products that are associated with the atleast one other user in response to determining that the similarity isabove the pre-determined threshold comprises: receiving data associatedwith the at least one other user, the data comprising product purchasesmade by the at least one other user; and generating the list of productsthat are associated with the at least one other user based on theproduct purchases made by the at least one other user.
 7. The method ofclaim 1, further comprising training the machine learned recommendationfunction using machine learning techniques based on descriptive vectorsof a plurality of users.
 8. A system comprising: a display; and at leastone hardware processor coupled to the display and configured to: receivedata associated with a target user; generate a descriptive vector forthe target user based on the received data; execute a machine learnedrecommendation function with the descriptive vector to generate a scorefor each of a plurality of pre-defined fashion attributes; compare thedescriptive vector to a descriptive vector generated for at least oneother user; determine, based on the comparison, that a similaritybetween the descriptive vector of the target user and the descriptivevector of the at least one other user is above a pre-determinedthreshold; in response to determining that the similarity is above thepre-determined threshold, generate a list of products that areassociated with the at least one other user; determine for each productin the list of products, at least one of the pre-defined fashionattributes as a fashion attribute of the product; generate a list ofrecommended products for the target user from the list of products basedon the generated score of each of the pre-defined fashion attributesthat are determined to be fashion attributes of the products in the listof products; determine, based on the data associated with the targetuser, users that are in the target user's social group; determine a listof products that are associated with the users in the target user'ssocial group; compare the list of recommended products for the targetuser to the list of products that are associated with the users in thetarget user's social group; determine, based on the comparison, that atleast one product is included in both the list of recommended productsfor the target user and the list of products that are associated withthe users in the target user's social group; remove the at least oneproduct from the list of recommended products based on the determinationthat the at least one product is included in both the list ofrecommended products for the target user and the list of products thatare associated with the users in the target user's social group to forma uniqueness-aware list of recommended products; and present theuniqueness-aware list of recommended products to the target user via agraphical user interface on the display.
 9. The system of claim 8,wherein the data associated with the target user comprises at least oneof preferred styles of the target user, favorite brands of the targetuser, social media texts of the target user, social media photos of thetarget user, social media “likes” of the target user, a demographic ofthe target user, a physical attribute of the target user, a geographicallocation of the target user, and a local weather condition.
 10. Thesystem of claim 8, the at least one hardware processor furtherconfigured to: present at least one question to the target user via thegraphic user interface; and receive from the target user at least oneanswer in response to the at least one question, wherein the descriptivevector is generated based at least in part on the received answer. 11.The system of claim 8, the at least one hardware processor furtherconfigured to: present at least one image including at least one productto the target user; and receive from the target user a score for the atleast one product in the at least one image, wherein the descriptivevector is generated based at least in part on the received score for theat least one product in the at least one image.
 12. The system of claim8, the at least one hardware processor further configured to: present auniqueness element to the target user via the graphical user interface,the uniqueness element selectively activatable by the target userbetween at least a first state and a second state, wherein: when theuniqueness element is in the first state, the at least one processorpresents the uniqueness-aware list of recommended products to the targetuser via the graphical user interface; and when the uniqueness elementis in the second state, the at least one processor presents the list ofrecommended products to the target user via the graphical user interfaceinstead of the uniqueness-aware list of recommended products.
 13. Thesystem of claim 8, wherein generating the list of products that areassociated with the at least one other user in response to determiningthat the similarity is above the pre-determined threshold comprises:receiving data associated with the at least one other user, the datacomprising product purchases made by the at least one other user; andgenerating the list of products that are associated with the at leastone other user based on the product purchases made by the at least oneother user.
 14. The system of claim 8, the at least one hardwareprocessor further configured to: train the machine learnedrecommendation function using machine learning techniques based ondescriptive vectors of a plurality of users.
 15. A computer readablestorage medium comprising instructions that, when executed by at leastone hardware processor, configure the at least one hardware processorto: receive data associated with a target user; generate a descriptivevector for the target user based on the received data; execute a machinelearned recommendation function with the descriptive vector to generatea score for each of a plurality of pre-defined fashion attributes;compare the descriptive vector to a descriptive vector generated for atleast one other user; determine, based on the comparison, that asimilarity between the descriptive vector of the target user and thedescriptive vector of the at least one other user is above apre-determined threshold; in response to determining that the similarityis above the pre-determined threshold, generate a list of products thatare associated with the at least one other user; determine for eachproduct in the list of products, at least one of the pre-defined fashionattributes as a fashion attribute of the product; generate a list ofrecommended products for the target user from the list of products basedon the generated score of each of the pre-defined fashion attributesthat are determined to be fashion attributes of the products in the listof products; determine, based on the data associated with the targetuser, users that are in the target user's social group; determine a listof products that are associated with the users in the target user'ssocial group; compare the list of recommended products for the targetuser to the list of products that are associated with the users in thetarget user's social group; determine, based on the comparison, that atleast one product is included in both the list of recommended productsfor the target user and the list of products that are associated withthe users in the target user's social group; remove the at least oneproduct from the list of recommended products based on the determinationthat the at least one product is included in both the list ofrecommended products for the target user and the list of products thatare associated with the users in the target user's social group to forma uniqueness-aware list of recommended products; and present theuniqueness-aware list of recommended products to the target user via agraphical user interface on the display.
 16. The computer readablestorage medium of claim 15, wherein the data associated with the targetuser comprises at least one of preferred styles of the target user,favorite brands of the target user, social media texts of the targetuser, social media photos of the target user, social media “likes” ofthe target user, a demographic of the target user, a physical attributeof the target user, a geographical location of the target user, and alocal weather condition.
 17. The computer readable storage medium ofclaim 15, the instructions further configuring the at least one hardwareprocessor to: present at least one question to the target user via thegraphic user interface; and receive from the target user at least oneanswer in response to the at least one question, wherein the descriptivevector is generated based at least in part on the received answer. 18.The computer readable storage medium of claim 15, the instructionsfurther configuring the at least one hardware processor to: presentingat least one image including at least one product to the target user;and receiving from the target user a score for the at least one productin the at least one image, wherein the descriptive vector is generatedbased at least in part on the received score for the at least oneproduct in the at least one image.
 19. The computer readable storagemedium of claim 15, the instructions further configuring the at leastone hardware processor to: presenting a uniqueness element to the targetuser via the graphical user interface, the uniqueness elementselectively activatable by the target user between at least a firststate and a second state, wherein: when the uniqueness element is in thefirst state, the at least one processor presents the uniqueness-awarelist of recommended products to the target user via the graphical userinterface; and when the uniqueness element is in the second state, theat least one processor presents the list of recommended products to thetarget user via the graphical user interface instead of theuniqueness-aware list of recommended products.
 20. The computer readablestorage medium of claim 15, wherein generating the list of products thatare associated with the at least one other user in response todetermining that the similarity is above the pre-determined thresholdcomprises: receiving data associated with the at least one other user,the data comprising product purchases made by the at least one otheruser; and generating the list of products that are associated with theat least one other user based on the product purchases made by the atleast one other user.